package com.hfdg.coordination.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hfdg.coordination.entity.CoordTask;
import com.hfdg.coordination.mapper.CoordTaskMapper;
import com.hfdg.coordination.service.CoordTaskService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * @ClassName CoordTaskServiceImpl
 * @Description CoordTask,主要对CoordTask类型数据的业务服务操作实现类
 * @Company 会飞的锅工作室
 * @Author yuelh
 * @Email 18695867679@163.com
 * @Date 2020/05/18 07:02:30
 * @Version 1.0
 **/
@Service
public class CoordTaskServiceImpl implements CoordTaskService {
    @Autowired
    CoordTaskMapper coordTaskMapper;
    @Override
    public String insert(CoordTask coordTask) {
        String uid = UUID.randomUUID().toString();
        coordTask.setUid(uid);
        coordTask.setDelFlag("0");
        coordTask.setCreateTime(new Date());
        coordTaskMapper.insert(coordTask);
        return uid;
    }

    @Override
    public Integer update(CoordTask coordTask) {
        coordTask.setUpdateTime(new Date());
        return coordTaskMapper.update(coordTask);
    }

    @Override
    public Integer  delete(String uid) {
        return coordTaskMapper.delete(uid);
    }
    @Override
    public Integer batchDelete(String[] uids) {
            return coordTaskMapper.batchDelete(uids);
    }

    @Override
    public CoordTask get(String uid) {
        return coordTaskMapper.get(uid);
    }

    @Override
    public List<CoordTask> list(CoordTask coordTask) {
    return  coordTaskMapper.list(coordTask);
    }

    @Override
    public PageInfo<CoordTask> getPagingData(int offset, int limit,String orderBy, CoordTask coordTask) {
        if(null==orderBy|| StringUtils.isBlank(orderBy)){
        PageHelper.startPage((offset/limit)+1,limit);
        }else{
        PageHelper.startPage((offset/limit)+1,limit,orderBy);
        }
        PageInfo<CoordTask> pageInfo =new PageInfo<>(coordTaskMapper.list(coordTask));
            return pageInfo;
            }
    @Override
    public PageInfo<Map<String,Object>> getTaskToDoPagingData(int offset, int limit,String orderBy, CoordTask coordTask) {
        if(null==orderBy|| StringUtils.isBlank(orderBy)){
            PageHelper.startPage((offset/limit)+1,limit);
        }else{
            PageHelper.startPage((offset/limit)+1,limit,orderBy);
        }
        PageInfo<Map<String,Object>> pageInfo =new PageInfo<>(coordTaskMapper.listTaskToDo(coordTask));
        return pageInfo;
    }
    @Override
    public String insertOrUpdate(CoordTask coordTask){
        if(null!=coordTask.getUid()){
            this.update(coordTask);
        }else{
            this.insert(coordTask);
        }
        return coordTask.getUid();
    }
            }
